Information processing apparatus, device control method, and computer program product

ABSTRACT

According to an embodiment, an information processing apparatus includes: a first control unit to control a first device; and a second control unit to control a second device. The first control unit includes a first request processing unit, a notification unit, and a first execution unit. The second request processing unit receives a second request including an instruction to start a process of the second device. The notification unit notifies the second control unit that the first control unit receives a first request. The second execution unit executes a second request received by the second request processing unit when the first device is in the active state, and executes the second request stored in the storage unit when the notification is received by the notification receiving unit.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is based upon and claims the benefit of priority fromJapanese Patent Application No. 2013-040176, filed on Feb. 28, 2013; theentire contents of which are incorporated herein by reference.

FIELD

Embodiments described herein relate generally to an informationprocessing apparatus, a device control method, and a computer programproduct.

BACKGROUND

Appliances nowadays are installed with various devices, and thus, if thedevices are controlled while taking power saving into account, the powerconsumption of the entire appliance may be reduced.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a diagram illustrating an example of a configuration offunctional blocks of an information processing apparatus of a firstembodiment;

FIG. 2 is a diagram illustrating an example of a configuration offunctional blocks of a second request processing unit of the firstembodiment;

FIG. 3 is a diagram illustrating an example of a hardware configurationof the information processing apparatus of the first embodiment;

FIG. 4 is a flow chart illustrating an example of an operation of afirst control unit of the first embodiment;

FIG. 5 is a flow chart illustrating an example of an operation of asecond control unit of the first embodiment;

FIG. 6 is a flow chart illustrating an example of an operation at thetime of a notification receiving unit of the first embodiment receivinga notification;

FIG. 7 is a diagram illustrating an example of a device control methodof the first embodiment (an EPD and a NAND flash);

FIG. 8 is a diagram illustrating an example of the device control methodof the first embodiment (an EPD and a wireless LAN device);

FIG. 9 is a diagram illustrating an example of functional blocks of aninformation processing apparatus of a second embodiment;

FIG. 10 is a flow chart illustrating an example of an operation of asecond control unit of the second embodiment;

FIG. 11 is a diagram illustrating an example of functional blocks of aninformation processing apparatus of a third embodiment;

FIG. 12 is a diagram illustrating an example of a device control methodof the information processing apparatus of the third embodiment;

FIG. 13 is a diagram illustrating an example of functional blocks of aninformation processing apparatus of a fourth embodiment;

FIG. 14 is a diagram illustrating an example of a device control methodof a conventional information processing apparatus;

FIG. 15 is a diagram illustrating an example of a device control methodof the information processing apparatus of the fourth embodiment; and

FIG. 16 is a diagram illustrating an example of a configuration offunctional blocks of an information processing apparatus of an examplemodification of the first embodiment.

DETAILED DESCRIPTION

According to an embodiment, an information processing apparatusincludes: a first control unit configured to control a first device anda second control unit configured to control a second device. The firstcontrol unit includes a first request processing unit, a notificationunit, and a first execution unit. The first request processing unit isconfigured to receive a first request including an instruction to starta process of the first device. The notification unit is configured tonotify the second control unit of reception of the first request. Thefirst execution unit is configured to start a process of the firstdevice based on the first request. The second control unit includes asecond request processing unit, a storage unit, and a notificationreceiving unit, and a second execution unit. The second requestprocessing unit is configured to receive a second request including aninstruction to start a process of the second device. The storage unit isconfigured to store therein the second request in a case where the firstdevice is not in an active state when the second request processing unitreceives the second request. The notification receiving unit isconfigured to receive the notification. The second execution unit isconfigured to execute the second request received by the second requestprocessing unit in a case where the first device is in the active state,and execute the second request stored in the storage unit when thenotification is received by the notification receiving unit.

First Embodiment

FIG. 1 is a diagram illustrating an example of a configuration offunctional blocks of an information processing apparatus 100 of a firstembodiment. The information processing apparatus 100 of the presentembodiment includes a first control unit 10, a first device controller14, a first device 15, a second control unit 20, a second devicecontroller 26, a second device 27, a PMIC 39, and a clock control module31. The first control unit 10 includes a first request processing unit11, a notification unit 12, an active state flag management unit 16, anda first execution unit 13. The second control unit 20 includes a secondrequest processing unit 21, a storage unit 22, a timer setting unit 23,a notification receiving unit 24, and a second execution unit 25.

The first device 15 and the second device 27 are each one of devicesconfiguring the information processing apparatus 100. The first device15 and the second device 27 may be any devices.

The first request processing unit 11 receives a request including aninstruction to start a process of the first device 15 (hereinafter,referred to as a “first request”) from outside the first control unit.The first request is transmitted by an application or an operatingsystem running on the information processing apparatus 100, a devicedriver or the like, for example. When the first request processing unit11 receives the first request, the first request processing unit 11issues a notification to the notification unit 12. When receiving thenotification from the first request processing unit 11, the notificationunit 12 notifies the second control unit 20 (the notification receivingunit 24) of reception of the first request. Further, when receiving thefirst request, the first request processing unit 11 transmits the firstrequest to the first execution unit 13. The first execution unit 13receives the first request and issues the instruction to start a processto the first device controller 14; and the first device controller 14causes the first device 15 to start the process indicated by the firstrequest. The active state flag management unit 16 is for managing a flagindicating whether the first device is in an active state or not. Thefirst execution unit 13 issues a notification regarding execution startto the active state flag management unit 16 at the time when the firstexecution unit 13 transmits the instruction to start a process to thefirst device controller 14. In response to the notification, the activestate flag management unit 16 turns on the flag to indicate that thefirst device is in the active state. Moreover, when the process of thefirst request is completed, the first device 15 issues a notificationregarding completion of the process to the active state flag managementunit 16, and the active state flag management unit 16 turns off theflag.

The second request processing unit 21 receives a request including aninstruction to start a process of the second device 27 (hereinafter,referred to as a “second request”) from outside the second control unit20. The second request is transmitted by an application or an operatingsystem running on the information processing apparatus 100, a devicedriver or the like, for example.

FIG. 2 is a diagram illustrating an example of a configuration offunctional blocks of the second request processing unit 21 of the firstembodiment. The second request processing unit 21 includes a receivingunit 28, and a determination unit 29. The receiving unit 28 receives thesecond request.

The receiving unit 28 of the second request processing unit 21 inquiresof the determination unit 29 of the second request processing unit 21whether the first device 15 is in the active state or not. That thefirst device 15 is in the active state indicates a case where the deviceis executing a process. Specifically, there are a case where a clock istransmitted to the first device 15, a case where a status register ofthe first device 15 or of the first device controller 14 indicates ON, acase where the PMIC 39 is supplying power to the first device 15, and acase where a flag of the active state flag management unit 16 of thefirst control unit 10 is indicating the active state, for example. Whenreceiving the inquiry about whether the first device 15 is in the activestate or not from the receiving unit 28, the determination unit 29determines whether the first device 15 is in the active state or not.The determination method can be used any method as follows: a method,performed by the determination unit to check whether a clock istransmitted to the first device 15, of referring to a registerindicating whether a clock is being supplied to the first device in theclock control module 31; a method of referring to a status register,included in the first device 15 or the first device controller 14,indicating whether the state is the active state; a method of referringto a register, included in the PMIC 39, indicating whether power isbeing supplied to the first device 15; and a method of referring to aflag, managed by the active state flag management unit 16 of the firstcontrol unit 10, indicating whether the state is the active state. Usingsuch determination methods either alone or in combination, thedetermination about whether the first device 15 is in an active state ismade.

In the case where the first device 15 is determined by the determinationunit 29 to be not in the active state, the second request processingunit 21 transmits the second request to the storage unit 22, and thestorage unit 22 stores the second request in association with an ID foridentifying the second request. The storage unit 22 includes a queueinside so as to be able to store a plurality of second requests inchronological order. At the time of storing the second request in thestorage unit 22, a timer is set in the timer setting unit 23 togetherwith the ID for identifying the second request so that an operation oftaking out the second request stored in the storage unit 22 andtransmitting the same to the second execution unit is performed, so asto prevent the second request from being stored in the storage unit fora predetermined period or longer and from not being performed. When thetime set in the timer is elapsed, the timer setting unit 23 transmitsthe ID for identifying the second request to the storage unit 22, and inthe case where the second request corresponding to the ID is in thestorage unit, the storage unit 22 transmits the second request to thesecond execution unit. Further, in the case where the first device 15 isdetermined by the determination unit 29 to be in the active state, thereceiving unit 28 of the second request processing unit 21 transmits thesecond request to the second execution unit 25. The second executionunit 25 receives the second request, and transmits an instruction tostart a process to the second device controller 26, and the seconddevice controller 26, which has received the instruction, causes thesecond device 27 to start the process indicated by the second request.

The notification receiving unit 24 receives the notification indicatingthat the first request is received, from the notification unit 12. Whenreceiving the notification, the notification receiving unit 24 notifiesthe storage unit 22 of the same. When receiving the notification, thestorage unit 22 transmits the second request which is stored to thesecond execution unit, and the second execution unit 25 receives thesecond request and transmits an instruction to start a process to thesecond device controller 26, and the second device controller 26, whichhas received the instruction, causes the second device 27 to start theprocess indicated by the second request.

The first control unit 10 and the second control unit 20 are implementedby execution of programs. The programs of the first control unit 10 andthe second control unit 20 may be implemented by parts of the programsof the operating system and the device driver, of the operating systemand the application, of the device driver and the application, or of theoperating system, the device driver and the application. Control ofstarting the operation of the second device 27 may be performed by thefirst control unit 10 and the second control unit 20, in the case wherethe first device 15 is in the active state.

FIG. 3 is a diagram illustrating an example of a hardware configurationof the information processing apparatus 100 of the first embodiment. Theinformation processing apparatus 100 of the present embodiment includesan SoC 30 (System on a chip), a power measurement device 38, a PMIC 39(Power Management Integrated Circuit), a main memory 40, a displaydevice 41, a storage device 42, a network device 43, a power storagedevice 44, and a power source device 45. Additionally, although notillustrated in FIG. 3, the information processing apparatus 100 mayfurther includes various devices such as a keyboard, a touch panel andthe like.

The SoC 30 includes a clock control module 31, a processor core 32, abus 33, a memory controller 34, a display device controller 35, astorage controller 36, and a network controller 37. Additionally, thememory controller 34, the display device controller 35, the storagecontroller 36, and the network controller 37 may be outside the SoC 30.

Here, concrete examples of the first device 15 and the second device 27of the information processing apparatus 100 of the present embodimentwill be described. For example, with respect to the informationprocessing apparatus 100 of the present embodiment, in the case wherethe network device 43 is a wireless LAN device, the storage device 42 isa NAND flash, and the display device 41 is a liquid crystal display, thefirst device 15 may be a wireless LAN, and the second device 27 may bethe NAND flash. To coincide the timings of the devices being placed inthe active state, a method is desirable of deciding the first device 15to be the reference and, during a period when the device which is thereference is in the active state, causing another device to be thesecond device 27 and coinciding the timings of being placed in theactive state. When comparing the average times of the active state, thetime of the wireless LAN device being in the active state is longercompared to the NAND flash. Further, among the processes using the NANDflash, the writing of the NAND flash is a write process for a page cacheon the main memory 40, and a slight delay in the timing does not becomea problem. Further, in the case where the main memory 40 isnon-volatile, the page cache on the main memory 40 is not lost even whenthe power is out, and the possibility of occurrence of a problem due toa delay in the writing is further reduced.

Accordingly, with respect to the information processing apparatus 100 ofthe present embodiment, in the case where the network device 43 is awireless LAN, the storage device 42 is a NAND flash, and the displaydevice 41 is a liquid crystal display, and the liquid crystal display isturned off, it is desirable to cause the wireless LAN device to be thefirst device 15 and the NAND flash to be the second device 27, and tocoincide the active state of the NAND flash with the active state of thewireless LAN. However, the device to be the reference is not restrictedto the wireless LAN device.

On the other hand, for example, in the case where the informationprocessing apparatus 100 is an electronic book terminal where an EPD isused as the display device 41, the EPD stays in the active, state longerthan the wireless LAN and the NAND flash. Accordingly, the EPD isdesirable to be the first device 15 as the reference, and the wirelessLAN or the NAND flash to be the second device 27. Alternatively, the EPDmay be the first device 15, and both the wireless LAN and the NAND flashmay be the second device 27. At this time, the process of the wirelessLAN device, in addition to the NAND flash, is made to coincide with theactive state of the EPD and the start of the process is delayed, butsince network processing is due to be delayed, this is hardly a problem.Additionally, a case where there are a plurality of second devices 27will be described with reference to an information processing apparatus100 of a fourth embodiment.

Moreover, in the case where the display device 41 is a device other thanthe EPD and the network is configured only from neighboring nodes, anduse in the network where response of network processing is extremelyfast is assumed, there may be no big difference in the active state timelength between the wireless LAN device and the NAND flash. In this case,both the wireless LAN device and the NAND flash may be the first device15, and other devices may be the second device 27. A case where thereare a plurality of first devices 15 will be described with reference toan information processing apparatus 100 of a third embodiment.

Next, an example of a method of causing a device configuring theinformation processing apparatus 100 of the present embodiment tooperate as the first device 15 or the second device 27 will bedescribed. For example, a method of causing the first device 15 to bethe display device 41, and the second device 27 to be the storage device42 will be described. In the case of causing the display device 41 to bethe device which is the reference (the first device 15), and coincidingthe timing of the write process of the storage device 42 when thedisplay device 41 is in the active state, the first control unit 10 isembedded in the device driver of the display device 41, for example.That is, the driver of a conventional display device 41 receives arequest by the first request processing unit 11 and execution of anoperation indicated by the first request is started by the firstexecution unit 13, but with the information processing apparatus 100 ofthe present embodiment, the notification unit 12 is embedded between thefirst request processing unit 11 and the first execution unit 13. On theother hand, the second control unit 20 is embedded in the device driverof the storage device 42. That is, the storage unit 22, the timersetting unit 23 and the notification receiving unit 24 are newlyembedded in addition to the second request processing unit 21 and thesecond execution unit 25 of the device driver of a conventional storagedevice 42. Further, the determination unit 29 is embedded in the secondrequest processing unit 21.

Moreover, as another example, the process of writing the page cache onthe main memory 40 to the storage device 42 may be coincided with theactive state of the display device 41 by embedding the second controlunit 20 in the operating system, for example. That is, a write requestfor the page cache is received inside the operating system, and thesecond control unit 20 is embedded at a portion where writing of thepage cache is performed in the storage device 42.

Next, details of each piece of hardware of the hardware configuration ofthe information processing apparatus 100 of the present embodiment willbe given.

The clock control module 31 supplies clocks to the processor core 32,the bus 33, the memory controller 34, the display device controller 35,the storage controller 36, and the network controller 37. In the case ofsupplying clocks also to the main memory 40, the display device 41, thestorage device 42, and the network device 43, the clocks are supplied byrespective controllers (the memory controller 34, the display devicecontroller 35, the storage controller 36, and the network controller 37)or directly from the clock control module 31.

The clock control module 31 supplies clocks to the device in the activestate, the main memory 40, the bus 33 and the like in the case wheredevices such as the main memory 40, the display device 41, the storagedevice 42, the network device 43 and the like are in the active state.If there is even one device that is operating (in the active state) inthe information processing apparatus 100, the clock control module 31does not stop supplying the clocks. The information processing apparatus100 (or the SoC 30) of the present embodiment may adopt a plurality ofpower saving modes, and the clock control module 31 may be stopped in anidle state where power consumption can be reduced the most. Accordingly,if there is even one device that is in the active state, the informationprocessing apparatus 100 (or the SoC 30) is not allowed to place theoperation state in the idle state.

The processor core 32 controls the operation of the informationprocessing apparatus 100 by executing programs of the operating system,the application or the like. The bus 33 is a transmission path fortransmitting/receiving data between devices of the informationprocessing apparatus 100.

The PMIC 39 includes a plurality of power rails (power lines) forsupplying power to each of the devices configuring the informationprocessing apparatus 100. The PMIC 39 can supply a different voltage foreach power rail (power line). The PMIC 39 converts the voltage suppliedby the power storage device 44 to a voltage required by each device, andthen supplies the same to each device. The PMIC 39 may change thevoltage or stop power supply for each power rail (power line). In thecase where the same number of power rails (power lines) as the devicescannot be provided, for example, one power rail (power line) may beshared by a plurality of devices. For example, with the informationprocessing apparatus 100 of the present embodiment, the power rail (thepower line) for supplying power to the storage device 42 and the networkdevice 43 is shared. However, in the case of sharing a power rail (apower line) by a plurality of devices, power is simultaneously suppliedto devices other than the one in the active state even when it is enoughif power is supplied only to the device in the active state, and powermay be consumed needlessly.

The main memory 40 may be a volatile memory or a non-volatile memory.For example, if volatile, the main memory 40 may be a DRAM (DynamicRandom Access Memory), or an SRAM (Static Random Access Memory).Further, if non-volatile, the main memory 40 is an MRAM(Magnetoresistive Random Access Memory), a PCM (Phase Change Memory), aReRAM (Resistance Random Access Memory), a FeRAM (Ferroelectric RandomAccess Memory), an NOR flash memory, or the like.

The main memory 40 is controlled by the memory controller 34. Clocksnecessary for the operation of the main memory 40 are supplied by thememory controller 34. When there is no access from the processor core 32or the controller of another device, the main memory 40 may shift to aself-refresh mode or the like with lower power consumption to therebyreduce power consumption. In the case where the main memory 40 is anon-volatile memory, data may be maintained without power. Accordingly,in this case, the power consumption may be further reduced by the PMIC39 cutting off power supply to the main memory 40.

Moreover, in many cases, the display device 41, the storage device 42,and the network device 43 access the main memory 40 when in the activestate. Accordingly, the information processing apparatus 100 of thepresent embodiment allows access to the main memory 40 when any one ofthe display device 41, the storage device 42, and the network device 43is in the active state. The main memory 40 may reduce power consumptionby switching into a power saving mode such as the self-refresh mode or,in the case of the non-volatile memory, by turning off the power.However, when in the self-refresh mode or when the power is off, thememory cannot be accessed from outside. Thus, when there is a device inthe active state which may access the main memory 40, the memorycontroller 34 is not allowed to reduce power consumption of the mainmemory by placing the main memory 40 in the self-refresh mode or bystopping power supply.

The display device 41 may be a liquid crystal display, a PSR (Panel SelfRefresh) liquid crystal display, an EPD (Electrophoretic Display) or thelike. With respect to the liquid crystal display, power and clocks haveto be supplied to the device and the controller during display. Withrespect to the memory liquid crystal display, power has to be suppliedto the device during display, but clocks for the controller may bestopped if display content is not rewritten. The EPD requires clocks andpower at the time of rewriting, but at times other than the rewriting,the drawn content may be maintained without power. Generally, timerequired for rewriting is longer for the EPD than the liquid crystaldisplay or the like, and thus, the EPD tends to be used for anelectronic reader according to which reduction in the power consumptionis prioritized than the drawing speed. The EPD is controlled by thedisplay device controller 35. In the case where the EPD is in the activestate to perform a drawing process, the display device controller 35supplies clocks to the EPD. Further, if the EPD is in the active state,the main memory 40 is also in the active state. This is for allowing thedisplay device controller 35 to transfer data of the drawn contentdeveloped on the main memory 40 to the EPD, or to calculate theparameter for voltage control for the EPD based on the data of the drawncontent by using the main memory 40, for example.

The storage device 42 is used as a secondary storage. The storage device42 may be a NAND flash, an NOR flash, various types of memory card suchas an SD card, a hard disk or the like, for example. With theinformation processing apparatus 100 of the present embodiment, adescription is given assuming that the storage device 42 is a NANDflash. The storage device 42 is not restricted to the NAND flash, and itmay be any storage device. The NAND flash stores data such as files andprograms. The NAND flash is controlled by the storage controller 36. Thestorage controller 36 supplies clocks when the NAND flash is in theactive state to perform a read/write process. In the case of readingdata on the NAND flash, the storage controller 36 develops this data onthe main memory 40 as a page cache. In the case where an application,the OS or the like is to rewrite data, the page cache on the main memory40 is changed. This page cache is regularly written to the NAND flash bythe storage controller 36. Accordingly, when reading/writing of datawith respect to the NAND flash occurs, the main memory 40 is also placedin the active state.

The network device 43 may be a wired LAN device, a wireless LAN deviceconforming to transmission standards such as802.11a/802.11b/802.11g/802.11n/802.11ac, Bluetooth (registeredtrademark), ZigBee, TransferJet or the like, for example. With theinformation processing apparatus 100 of the present embodiment, adescription is given assuming that the network device 43 is a wirelessLAN device. Additionally, the network device 43 is not restricted to thewireless LAN device, and it may be any network device. The wireless LANdevice is controlled by the network controller 37. The networkcontroller 37 supplies clocks when the wireless LAN device is in theactive state to perform a network process. Since, when in the activestate, the wireless LAN device reads/writes data to betransmitted/received using the main memory 40, the main memory 40 isalso placed in the active state.

The power source device 45 may be an AC power source such as an ACadapter, or various power generation devices such as an energyharvesting device, for example. The energy harvesting device is a solarcell that uses light energy, or a device that uses an energy harvestingtechnology that uses thermal energy or the like. With the informationprocessing apparatus 100 of the present embodiment, a description isgiven assuming that the power source device 45 is an energy harvestingdevice, but the power source device 45 is not restricted to the energyharvesting device. In the case of using the energy harvesting device asthe power source device 45, power generated only by the power sourcedevice 45 is not enough to obtain power at the peak time of theoperation of the information processing apparatus 100. Thus, surpluspower is stored in the power storage device 44 while the powerconsumption is low, so as to meet the power for the peak time. The powerstorage device 44 is a large-capacitance capacitor such as an electricdouble-layer capacitor or a lithium ion capacitor, or a battery such asa lithium ion battery. The power storage device 44 may also be a devicecombining both the large-capacitance capacitor and the battery.

The power measurement device 38 is a device for measuring the amount ofpower stored in the power storage device 44. For example, in the casewhere the power storage device 44 is a capacitor such as the electricdouble-layer capacitor or the lithium ion capacitor, the amount ofstored power may be obtained by measuring the output voltage. Thus, anAD converter may be used as the power measurement device 38. Further, inthe case where the power storage device 44 is the lithium ion battery orthe like, a coulomb counter may be used as the power measurement device38. That is, the amount of stored power may be obtained by measuring theamount of charge/discharge of the battery by the coulomb counter.

Next, device control methods of the first control unit 10 and the secondcontrol unit 20 of the information processing apparatus 100 of thepresent embodiment will be described.

FIG. 4 is a flow chart for describing an example of an operation of thefirst control unit 10 of the information processing apparatus 100 of thefirst embodiment. The first request processing unit 11 receives a firstrequest including an instruction to start a process of the first device15 (step S1). The notification unit 12 notifies the second control unit20 of reception of the first request (step S2). The first execution unit13 issues an instruction to the first device controller such that thefirst device may start execution of the first request (an operationindicated by the first request), and the first device controller causesthe first device to start execution of the process (step S3).

FIG. 5 is a flow chart for describing an example of an operation of thesecond control unit 20 of information processing apparatus 100 of thefirst embodiment. The second request processing unit 21 receives asecond request including an instruction to start a process of the seconddevice 27 (step S11). The second request processing unit 21 (thedetermination unit 29) checks whether the first device 15 is operating(is in the active state) (step S12). The second request processing unit21 (the determination unit 29) determines whether the first device 15 isoperating (is in the active state) (step S13). In the case where thefirst device 15 is not in the active state (step S13: No), the storageunit 22 stores the second request (step S14). In the case where thefirst device 15 is in the active state (Step S13: Yes), the secondexecution unit 25 issues an instruction to the second device controllersuch that the second device may start execution of the second request(an operation indicated by the second request), and the second devicecontroller causes the second device to start execution of the process(step S15).

FIG. 6 is a flow chart illustrating an example of an operation at thetime of the notification receiving unit 24 of the information processingapparatus 100 of the first embodiment receiving a notification. Thenotification receiving unit 24 receives a notification indicating thatthe first request is received, from the notification unit 12 of thefirst control unit 10 (step S21). The second execution unit 25 checkswhether the second request is stored in the storage unit 22 (step S22).In the case where the second request is stored (step S22: Yes),execution of the second request stored in the storage unit 22 is started(step S23). In the case where the second request is not stored (stepS22: No), the process is ended.

The process of the flow chart of FIG. 6 is not performed in the casewhere the first request is not received by the first device 15.Accordingly, the process of the flow chart of FIG. 6 (steps S22 and S23)is also performed with the expiry of the timer set by the timer settingunit 23 as the trigger. Generally, an operating system is provided witha timer function of causing a specified process to be performed after apredetermined period of time has elapsed or on a regular basis. Thus, atimer interrupt may be performed also by using the timer function of theoperating system. For example, the timer interrupt may be performed bythe timer setting unit 23 setting the timer at the time of storing thesecond request, or by causing the process of the flow chart of FIG. 6(steps S22 and S23) to be activated periodically and at predeterminedintervals at the time of activation of the operating system.

Next, an effect of the device control method of the informationprocessing apparatus 100 of the present embodiment will be described.

FIG. 7 is a diagram illustrating an example of the device control methodof the information processing apparatus 100 of the first embodiment (anEPD and a NAND flash). The information processing apparatus 100 of thepresent embodiment (in the case of the concrete example in FIG. 7),starts the operation of the second device 27 (the NAND flash) in thecase where the first device 15 (the EPD) is in the active state. FIG. 8is a diagram illustrating an example of the device control method of theinformation processing apparatus 100 of the first embodiment (an EPD anda wireless LAN device). The information processing apparatus 100 of thepresent embodiment (in the case of the concrete example in FIG. 8)starts the operation of the second device 27 (the wireless LAN device)in the case where the first device 15 (the EPD) is in the active state.The idle state may thereby be made longer compared to the case of aconventional information processing apparatus 100, and power saving maybe achieved for the information processing apparatus 100. That is, thetime when the SoC 30 may stay in the idle state with low powerconsumption or when the main memory 40 may be placed in the power savingmode or in a power off state may be made longer. Further, the time ofsupplying power to a device by the PMIC 39 may be made shorter.

Second Embodiment

Next, an information processing apparatus 100 of a second embodimentwill be described. The information processing apparatus 100 of the firstembodiment aims to achieve power saving by shifting the timing of startof execution of a process indicated by a second request from thereception of the second request by the second device 27. However, a timedifference occurs between the reception of the request and the timing ofstart of execution, and in the case where there is sufficient power, itis desirable that there is no time difference. According to theinformation processing apparatus 100 of the present embodiment, a powermonitoring unit 17 is provided to a second control unit 20, and thetimings of devices being placed in the active state are coincided onlywhen the amount of stored power is less than a threshold.

FIG. 9 is a diagram illustrating an example of functional blocks of theinformation processing apparatus 100 of the second embodiment. Theinformation processing apparatus 100 of the present embodiment includesa first control unit 10, a first device controller 14, a first device15, a second control unit 20, a second device controller 26, a seconddevice 27, a PMIC 39, a clock control module 31, and a power measurementdevice 38. The first control unit 10 includes a first request processingunit 11, a notification unit 12, and a first execution unit 13. Thesecond control unit 20 includes a second request processing unit 21, astorage unit 22, a timer setting unit 23, a notification receiving unit24, a second execution unit 25, and a power monitoring unit 17.Functional blocks other than the power monitoring unit 17 are the sameas those of the information processing apparatus 100 of the firstembodiment, and a redundant description thereof will be omitted.

The power monitoring unit 17 monitors the amount of power of the powerstorage device 44. To check the amount of power, the power monitoringunit 17 inquires of the power monitoring unit 17 about the amount ofpower. The power monitoring unit 17 acquires the amount of power fromthe power measurement device 38. FIG. 10 is a flow chart for describingan example of an operation of the second control unit 20 of theinformation processing apparatus 100 of the second embodiment. Thesecond request processing unit 21 receives a second request including aninstruction to start a process of the second device 27 (step S31). Thepower monitoring unit 17 determines whether the amount of power of theinformation processing apparatus 100 is equal to or larger than athreshold (a predetermined value) (step S32). In the case where theamount of power is equal or larger than the threshold (step S32: Yes),the process proceeds to step S36. In the case where the amount of poweris less than the threshold (step S32: No), the second request processingunit 21 (the determination unit 29) checks whether the first device 15is operating (is in the active state) (step S33). The second requestprocessing unit 21 (the determination unit 29) determines whether thefirst device 15 is operating (is in the active state) (step S34). In thecase where the first device 15 is not in the active state (step S34:No), the storage unit 22 stores the second request (step S35). In thecase where the first device 15 is in the active state (step S34: Yes),the second execution unit 25 issues an instruction to the second devicecontroller such that the second device may start execution of the secondrequest (an operation indicated by the second request), and the seconddevice controller causes the second device to start execution of theprocess (step S36).

According to the information processing apparatus 100 of the presentembodiment, the timing of the second device 27 being placed in theactive state is made to coincide with the timing of the first device 15being placed in the active state only when the amount of power stored inthe information processing apparatus 100 is less than the threshold. Thepower saving may thereby be achieved for the information processingapparatus 100, and in the case where there is a sufficient amount ofpower, the difference in the timing between reception of the request andthe start of execution may be made small.

Third Embodiment

Next, an information processing apparatus 100 of a third embodiment willbe described. The information processing apparatus 100 of the firstembodiment includes one first device 15 and one first device controller.However, the information processing apparatus 100 may include aplurality (an arbitrary number) of first devices 15. The informationprocessing apparatus 100 of the present embodiment includes a pluralityof first devices 15.

FIG. 11 is a diagram illustrating an example of functional blocks of theinformation processing apparatus 100 of the third embodiment. Theinformation processing apparatus 100 of the present embodiment includesfirst control units 10, first device controllers 14, first devices 15, asecond control unit 20, a second device controller 26, a second device27, a PMIC 39, and a clock control module 31. The information processingapparatus 100 of the present embodiment is an example of including threefirst control units 10, three first device controllers 14, and threefirst devices 15. The first control unit 10 includes a first requestprocessing unit 11, a notification unit 12, and a first execution unit13. The second control unit 20 includes a second request processing unit21, a storage unit 22, a timer setting unit 23, a notification receivingunit 24, and a second execution unit 25. The information processingapparatus 100 of the present embodiment includes three first controlunits 10, and each one determines the active state of one of the threefirst devices 15.

A concrete example of the information processing apparatus 100 of thepresent embodiment will be described. For example, a case where an EPDand a wireless LAN device are made the first devices 15 (the devices tobe the reference) will be described. In this case, the first controlunits 10 are embedded in the device drivers of the reference devices(the EPD and the wireless LAN device). Further, the second control unit20 is embedded in the device driver of the second device 27 start timingof whose operation is to be coincided with the timing of the referencedevice being placed in the active state. Accordingly, if, among theplurality of first devices 15, there is even one first device 15 whichis in the active state, the second device 27 may start the execution ofan operation indicated by the second request.

Next, an effect of the device control method of the informationprocessing apparatus 100 of the present embodiment will be described. Acase where there are two first devices 15 and one second device 27 willbe described based on a concrete example. FIG. 12 is an exampleillustrating an example of a device control method of the informationprocessing apparatus 100 of the third embodiment. The informationprocessing apparatus 100 of the present embodiment (a case of theconcrete example of FIG. 12) causes an operation of the second device 27(a device with a short process) to be started in the case where one ofthe first devices 15 (a NAND flash and a wireless LAN device) is in theactive state. The idle state can thereby be made longer compared to thecase of a conventional information processing apparatus 100, and powersaving can be achieved for the information processing apparatus 100.That is, the time during which the SoC 30 stays in the idle state withlow power consumption or time during which the main memory 40 is placedin the power saving mode or in a power off state can be made longer.Further, the time of supplying power to a device by the PMIC 39 may bemade shorter.

Fourth Embodiment

Next, an information processing apparatus 100 of a fourth embodimentwill be described. The information processing apparatus 100 may includea plurality (an arbitrary number) of second devices 27. The informationprocessing apparatus 100 of the present embodiment includes a pluralityof second devices 27.

According to the information processing apparatus 100 of the presentembodiment, the first device 15 is an EPD, and the second devices 27 area NAND flash and a wireless LAN device. The reason is described below.To coincide the timings of the devices being placed in the active state,a method is desirable of deciding the device to be the reference andcoinciding the timing of another device being placed in the active statewith the time when the device which is the reference is in the activestate. When comparing the average times of the active state, the time ofthe EPD being in the active state is longer compared to the NAND flashand the wireless LAN device. Further, among the processes using the NANDflash, the write process of the NAND flash is for a page cache on themain memory 40, and a slight delay in the timing does not become aproblem. Further, in the case where the main memory 40 is non-volatile,the page cache on the main memory 40 is not lost even when the power isout, and the possibility of occurrence of a problem due to a delay inthe writing is further reduced. Further, with respect to the wirelessLAN device, since network processing is due to be delayed, delaying theprocess of the wireless LAN device is hardly a problem.

Accordingly, with the information processing apparatus 100 of thepresent embodiment, the EPD is desirably made the reference forcoinciding the timings of the active state. However, the device to bethe reference is not restricted to the EPD. For example, with aninformation processing apparatus 100 that uses a liquid crystal display,instead of the EPD, as the display device 41, such as a personalcomputer, the active state of the wireless LAN device and the NAND flashmay, in many cases, be relatively longer compared to other devices. Inthis case, the device to be the reference may be the wireless LAN deviceor the NAND flash.

FIG. 13 is a diagram illustrating an example of functional blocks of theinformation processing apparatus 100 of the fourth embodiment. Theinformation processing apparatus 100 of the present embodiment includesa first control unit 10, a first device 15, second control units 20, andsecond devices 27. The information processing apparatus 100 of thepresent embodiment is an example of a case where there are three secondcontrol units 20, and three second devices 27. The first control unit 10includes a first request processing unit 11, notification units 12, anda first execution unit 13. The notification units 12 of the presentembodiment notify the three second control units 20 (the notificationreceiving units 24) of reception of a first request. The notificationunits 12 and the second control units are illustrated in FIG. 13 in sucha way as to correspond on a one-to-one basis, but a mode is also allowedaccording to which one notification unit 12 notifies a plurality ofsecond control units of the reception. The second control unit 20includes a second request processing unit 21, a storage unit 22, a timersetting unit 23, a notification receiving unit 24, and a secondexecution unit 25.

Next, an effect of the device control method of the informationprocessing apparatus 100 of the present embodiment will be describedbased on a concrete example with respect to a case where there is onefirst device 15 and two second devices 27. FIG. 14 is a diagramillustrating an example of the device control method of a conventionalinformation processing apparatus. In FIG. 14, devices are in the activestate independently, and the times of the active state rarely overlap.Thus, the period when none of the devices is in the active state isshort, and the period when the information processing apparatus 100 isin the idle state is short.

FIG. 15 is a diagram illustrating an example of the device controlmethod of the information processing apparatus 100 of the fourthembodiment. The information processing apparatus 100 of the presentembodiment causes operations of the second devices 27 (the NAND flashand the wireless LAN device) to be started in the case where the firstdevice 15 (the EPD) is in the active state. The idle state may therebybe made longer compared to the case of the conventional informationprocessing apparatus 100, and power saving can be achieved for theinformation processing apparatus 100. That is, the time during which theSoC 30 stays in the idle state with low power consumption or time duringwhich the main memory 40 is placed in the power saving mode or in apower off state can be made longer. Further, the time of supplying powerto a device by the PMIC 39 can be made shorter.

According to the information processing apparatus 100 of the presentembodiment, the notification units 12 of the first control unit 10notify respective second devices 27 configuring the informationprocessing apparatus 100 of reception of a first request. Accordingly,the information, processing apparatus 100 of the present embodimentachieves the same effect as the information processing apparatus 100 ofthe first embodiment even with an arbitrary number of second devices 27.

As described above, according to the information processing apparatuses100 of the first to fourth embodiments, power saving can be achievedwithout changing the hardware configurations of the devices of theinformation processing apparatuses 100.

Devices configuring the information processing apparatuses 100 may bearbitrary devices. A case where a device is a processor will bedescribed as a concrete example of a device not described in theembodiments above.

FIG. 16 is a diagram illustrating an example of a configuration offunctional blocks of an information processing apparatus 100 of anexample modification of the first embodiment (an example where thesecond device is a processor). FIG. 16 is different from FIG. 1 in thatthe second device controller 26 and the second device 27 in FIG. 1 are aprocessor 46 in FIG. 16. In this case, start of execution of a programto be executed on the processor 46 is to be coincided with the time ofthe first device being in the active state.

As an example of a concrete process of a program, there is GC (GarbageCollection) to be executed by an application, for example. The GC is aprocess for releasing a unused memory area, among memory areas allocatedby an application. The GC is characteristic in that the processing loadis great but the restrictions regarding the timing of start are notrestrictive, and a delay in the start timing does not become a greatproblem. Thus, if the timing of execution of the GC is coincided withthe active state of the first device (a device to be the reference) byembedding the second control unit 20 in the application at a part forcalling up the GC, power saving may be achieved for the informationprocessing apparatus 100.

While certain embodiments have been described, these embodiments havebeen presented by way of example only, and are not intended to limit thescope of the inventions. Indeed, the novel embodiments described hereinmay be embodied in a variety of other forms; furthermore, variousomissions, substitutions and changes in the form of the embodimentsdescribed herein may be made without departing from the spirit of theinventions. The accompanying claims and their equivalents are intendedto cover such forms or modifications as would fall within the scope andspirit of the inventions.

What is claimed is:
 1. An information processing apparatus comprising: afirst control unit configured to control a first device; and a secondcontrol unit configured to control a second device, wherein the firstcontrol unit includes: a first request processing unit configured toreceive a first request including an instruction to start a process ofthe first device; a notification unit configured to notify the secondcontrol unit of reception of the first request; and a first executionunit configured to start a process of the first device based on thefirst request, and the second control unit includes: a second requestprocessing unit configured to receive a second request including aninstruction to start a process of the second device; a storage unitconfigured to store therein the second request in a case where the firstdevice is not in an active state when the second request processing unitreceives the second request; a notification receiving unit configured toreceive the notification; and a second execution unit configured toexecute the second request received by the second request processingunit in a case where the first device is in the active state, andexecute the second request stored in the storage unit when thenotification is received by the notification receiving unit.
 2. Theapparatus according to claim 1, wherein the second control unit furtherincludes a power monitoring unit configured to monitor an amount ofpower of the information processing apparatus, and in a case where theamount of power is equal to or larger than a predetermined value, thesecond execution unit executes the second request received by the secondrequest processing unit.
 3. The apparatus according to claim 1, whereinthe information processing apparatus includes a plurality of the firstcontrol units, and the second execution unit executes the second requestreceived by the second request processing unit in a case where any oneof the first devices is in the active state, and executes the secondrequest stored in the storage unit when the notification is received bythe notification receiving unit.
 4. The apparatus according to claim 1,wherein the information processing apparatus includes a plurality of thesecond control units, the notification unit notifies the notificationreceiving units of the plurality of second control units of thenotification, and the second execution unit executes the second requestreceived by the second request processing unit in a case where the firstdevice is in the active state, and executes the second request stored inthe storage unit when the notification is received by the notificationreceiving units.
 5. The apparatus according to claim 1, wherein thesecond device is a processor, and the second request is a requestinstructing start of execution of a program to be executed by theprocessor.
 6. The apparatus according to claim 1, wherein the secondcontrol unit further includes a timer setting unit configured to set atimer at a time when the second request is stored in the storage unit,and when the timer expires, the second execution unit executes thesecond request stored in the storage unit.
 7. A device control methodperformed in an information processing apparatus including a firstcontrol unit configured to control a first device, and a second controlunit configured to control a second device, the method comprising:receiving, by a first request processing unit of the first control unit,a first request including an instruction to start a process of the firstdevice; notifying, by a notification unit of the first control unit, thesecond control unit of reception of the first request; starting, by afirst execution unit of the first control unit, a process of the firstdevice based on the first request; receiving, by a second requestprocessing unit of the second control unit, a second request includingan instruction to start a process of the second device; storing, in astorage unit of the second control unit, the second request in a casewhere the first device is not in an active state; receiving thenotification by a notification receiving unit of the second controlunit; and executing, by a second execution unit of the second controlunit, the second request received by the second request processing unitin a case where the first device is in the active state, and executing,by the second execution unit, the second request stored in the storageunit when the notification is received by the notification receivingunit.
 8. The method according to claim 7, further comprising:monitoring, by a power monitoring unit of the second control unit, anamount of power of the information processing apparatus, wherein in acase where the amount of power is equal to or larger than apredetermined value, the second request received by the second requestprocessing unit is executed by the second execution unit.
 9. The methodaccording to claim 7, wherein the information processing apparatusincludes a plurality of the first control units, and, by the secondexecution unit, the second request received by the second requestprocessing unit is executed in a case where any one of the first devicesis in the active state, and the second request stored in the storageunit is executed when the notification is received by the notificationreceiving unit.
 10. The method according to claim 7, wherein theinformation processing apparatus includes a plurality of the secondcontrol units, by the notification unit, the notification is notified tothe notification receiving units of the plurality of second controlunits, and by the second execution unit, the second request received bythe second request processing unit is executed in a case where the firstdevice is in the active state, and the second request stored in thestorage unit is executed when the notification is received by thenotification receiving units.
 11. The method according to claim 7,wherein the second device is a processor, and the second request is arequest instructing start of execution of a program to be executed bythe processor.
 12. The method according to claim 7, further comprising:setting, by a timer setting unit of the second control unit, a timer ata time when the second request is stored in the storage unit, wherein bythe second execution unit, when the timer expires, the second requeststored in the storage unit is executed.
 13. A computer program productcomprising a computer-readable medium containing a computer program thatcauses a computer to function as: an information processing apparatuscomprising: a first control unit configured to control a first device;and a second control unit configured to control a second device, whereinthe first control unit includes: a first request processing unitconfigured to receive a first request including an instruction to starta process of the first device; a notification unit configured to notifythe second control unit of reception of the first request; and a firstexecution unit configured to start a process of the first device basedon the first request, and the second control unit includes: a secondrequest processing unit configured to receive a second request includingan instruction to start a process of the second device; a storage unitconfigured to store therein the second request in a case where the firstdevice is not in an active state; a notification receiving unitconfigured to receive the notification; and a second execution unitconfigured to execute the second request received by the second requestprocessing unit in a case where the first device is in the active state,and execute the second request stored in the storage unit when thenotification is received by the notification receiving unit.
 14. Theproduct according to claim 13, wherein the second control unit furtherincludes a power monitoring unit configured to monitor an amount ofpower of the information processing apparatus, and in a case where theamount of power is equal to or larger than a predetermined value, thesecond execution unit executes the second request received by the secondrequest processing unit.
 15. The product according to claim 13, whereinthe information processing apparatus includes a plurality of the firstcontrol units, and the second execution unit executes the second requestreceived by the second request processing unit in a case where any oneof the first devices is in the active state, and executes the secondrequest stored in the storage unit when the notification is received bythe notification receiving unit.
 16. The product according to claim 13,wherein the information processing apparatus includes a plurality of thesecond control units, the notification unit notifies the notificationreceiving units of the plurality of second control units of thenotification, and the second execution unit executes the second requestreceived by the second request processing unit in a case where the firstdevice is in the active state, and executes the second request stored inthe storage unit when the notification is received by the notificationreceiving units.
 17. The product according to claim 13, wherein thesecond device is a processor, and the second request is a requestinstructing start of execution of a program to be executed by theprocessor.
 18. The product according to claim 13, wherein the secondcontrol unit further includes a timer setting unit configured to set atimer at a time when the second request is stored in the storage unit,and when the timer expires, the second execution unit executes thesecond request stored in the storage unit.